iT邦幫忙

2021 iThome 鐵人賽

DAY 8
0
Mobile Development

30天輕鬆學會unity自製遊戲系列 第 8

30天輕鬆學會unity自製遊戲-製作子彈

  • 分享至 

  • xImage
  •  

做完Player後先幫來上個簡易武器吧,找到Player Bullet 0一樣拖曳到場景,看是否需要改一個自己喜歡的名稱,在子彈放上一個碰撞器Capsule Collider2D 選擇Edit Collider改一下碰撞器大小跟子彈差不多即可,最後把Is Trigger給打勾(Is Trigger會把碰撞器=>觸發器使用,物件基本上都會穿過,穿越過觸發器程式就能在穿越的時機給於不同的方法.功能等….)
https://ithelp.ithome.com.tw/upload/images/20210908/20140598pq63x82HVf.pnghttps://ithelp.ithome.com.tw/upload/images/20210908/20140598Sw52YEGEzV.png
從新在子彈物件上開一個程式給他,這程式名稱就直接取Bullet,一樣點兩下開啟此程式
https://ithelp.ithome.com.tw/upload/images/20210908/20140598IockJK2FP5.png
給子彈一個標籤,之後傷害時會使用到,右上角的Tag按▼選擇Add Tag…在Tags有個+新增一個標籤給子彈暫取PlayerBullet
https://ithelp.ithome.com.tw/upload/images/20210908/20140598wO5kL8FrRK.png
這程式目前就讓子彈直直前進跟一段時間自我毀滅(如果不自我毀滅子彈就會一直存在,遊戲只要沒有轉換場景,每一個子彈都會消耗一點資源,遊戲會越玩越卡)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Bullet : MonoBehaviour
{
    private float speed = 5f;
    void Start()
    {
		//銷毀(物件(沒特別指定預設為自己),五秒後將執行)
        Destroy(gameObject, 5);
    }

    // Update is called once per frame
    void Update()
    {
		//位置的轉換(三圍向量的UP(0,1,0)*速度*時間.差量時間,世界座標為主)
		// deltaTime每台電腦的Time時脈,速度都不同deltaTime可以讓每台電腦同一時脈,速度用
        transform.Translate(Vector3.up * speed * Time.deltaTime, Space.World);
    }
    
}

最後再把子彈製作成預置物,好讓Player之後可以調用,左鍵點擊Hierarchy裡的Bullet往底下的Project拖曳到選定的資料夾放開,Bullet會變成藍色,資料夾也會多一個Bullet的預置物
https://ithelp.ithome.com.tw/upload/images/20210908/20140598dFCpGkeZ6U.png


上一篇
30天輕鬆學會unity自製遊戲-了解動畫系統
下一篇
30天輕鬆學會unity自製遊戲-製作敵人
系列文
30天輕鬆學會unity自製遊戲30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1
chinghunglin
iT邦新手 5 級 ‧ 2021-09-18 02:39:32

1.CS檔名務必要跟class name一模一樣,
然後名稱不要改來改去,不然後來就算改成CS檔名跟class name一模一樣還是會出錯,
會死在which does not derive from MonoBehaviour,
unity死不給做成prefab

2.然後reset套件後也無法解決第一點,然後camera就不知道為什麼看到的視角就異常了,
改不回來,新開專案也一樣

讓人覺得unity還有不少進步空間
讓人萌生退意...

之後有空再來重新安裝unity看看

1.檔名一樣就好~~(應該是很多時候都會抓程式檔名,不一樣就先報錯)
public class Bullet : MonoBehaviour(程式反而我是初學,unity畢竟是個工具...不按照工具的使用難免比較不好操作)
2.2D攝影角度應該是Z軸 調成-負值看看 (我也遇過@@)
3.reset攝影角度會變成三軸歸0...2D畫面如果攝影機跟你角色同一個平面,自然會看不到物件....
unity跟之前的版本比已經穩定不少@@
(如果有興趣也可以試試其他工具,其他工具我沒完整使用過@@...)
很高興您有自行嘗試不同的做法...多研究工具自然就上手囉~~
歡迎提問 ^^

public class Bullet : MonoBehaviour這我是確認沒錯的
第一次也可以編成prefab,只是後來亂搞後就出現我說的狀況...
只是寫個簡單APP記憶遊戲~不想搞太多時間在無所謂的地方...

你可以直接找記憶遊戲的教學 ^^應該很快能完成^^

我要留言

立即登入留言